home *** CD-ROM | disk | FTP | other *** search
- Unit Local ;
- Interface
- Uses Dos,Crt, (* Standard Turbo Pascal Units *)
- KGlobals,Sysfunc ;
- Procedure DisplayDir ( Var InString : String) ;
- Procedure EraseFiles ( Myfiles : String) ;
- Procedure RenameFile ( Var Instring : String) ;
- Procedure DisplayFile( Myfile : String) ;
-
- Implementation
- (* ----------------------------------------------------------------- *)
- (* DisplayDir - Displays the directory for the mask given in the *)
- (* input parameter string. *)
- (* ----------------------------------------------------------------- *)
- Procedure DisplayDir (Var InString : String) ;
- var
- MyFiles,fileprefix,option : String ;
- FileInfo : SearchRec ;
- Drive : byte ;
- Achar : char ;
- column,row,fcount : integer ;
- label Getnext ;
- Begin (* DisplayDir Procedure *)
- MyFiles := GetToken(InString);
- Option := GetToken(InString);
- Clrscr;
- row := 2;
- Drive := DefaultDrive+1 ;
- If (Length(MyFiles) > 1) then
- If MyFiles[2] in ['/','\',':'] then
- Begin (* get drive *)
- MyFiles[1] := UpCase(MyFiles[1]);
- If MyFiles[1] in ['A'..'Z'] then
- drive := ord(MyFiles[1])-ord('@') ;
- End ; (* get drive *)
- If Pos('.',Myfiles) = 0 then Myfiles := Myfiles + '*.*' ;
- fcount := 0 ;
- FindFirst(myfiles,anyfile,FileInfo);
- If DosError = 0 then
- Begin (* found files *)
- fcount := fcount + 1 ;
- writeln(' directory ',myfiles);
- If (option[2] = 'P') or (option[2] = 'p') then
- With FileInfo Do
- Begin (* Full Page Display *)
- writeln (name:16,' ',
- ((Time and $1E000000) shr 25)+80,'-',(* year *)
- (Time and $01E00000) shr 21:2,'-', (* month*)
- (Time and $001F0000) shr 16:2,' ', (* day *)
- (Time and $0000F800) shr 11:2,':', (* hour *)
- (Time and $000007E0) shr 5:2,':', (* min. *)
- (Time and $0000001F):2,' ', (* sec. *)
- size:8);
- Getnext : (* list rest of files *)
- Findnext(Fileinfo) ;
- If DosError = 0 then
- begin (* list next file *)
- fcount := fcount + 1 ;
- writeln (name:16,' ',
- ((Time and $1E000000) shr 25)+80,'-', (* year *)
- (Time and $01E00000) shr 21:2,'-', (* month*)
- (Time and $001F0000) shr 16:2,' ', (* day *)
- (Time and $0000F800) shr 11:2,':', (* hour *)
- (Time and $000007E0) shr 5:2,':', (* min. *)
- (Time and $0000001F):2,' ', (* sec. *)
- size:8);
- if row < 23 then row := row + 1
- else
- begin
- Repeat until Keypressed ; achar := readkey;
- row := 2 ;
- end ;
- goto Getnext ;
- end ; (* list next file *)
- End (* Full Page Display *)
- else
- Begin (* Names only display *)
- write(fileinfo.name);
- column := 21 ; row := 2;
- Findnext(FileInfo) ;
- While DosError = 0 do
- begin (* list rest of files *)
- fcount := fcount + 1 ;
- gotoxy(column,row);
- write (fileinfo.name);
- column := column + 20 ;
- if column > 61 then
- begin row := row + 1 ; column := 1 ; end ;
- Findnext(FileInfo);
- end ; (* list rest of files *)
- End ; (* Names only display *)
- End (* found files *)
- else
- writeln(' no file -',Myfiles,'- found ');
- writeln(' ');
- writeln(' ',fcount:4,' files');
- If row > 21 then Repeat until Keypressed ;
- Writeln('Disk Drive ',chr(drive+$40),': ',
- DiskFree(drive):8,' Bytes Free ') ;
- End ; (* DisplayDir Procedure *)
-
- (* ----------------------------------------------------------------- *)
- (* EraseFiles - Erases a file or files from the disk. *)
- (* *)
- (* ----------------------------------------------------------------- *)
- Procedure EraseFiles (Myfiles : String) ;
- var
- FileInfo : SearchRec ;
- tempfile : text ;
- column,row : integer ;
- Begin (* EraseFile Procedure *)
- While length(myfiles)<1 do
- Begin (* get file name *)
- write(' enter name of file to be erased > ');
- readln(myfiles);
- End ;
- FindFirst(myfiles,anyfile,FileInfo) ;
- If DosError = 0 then
- Begin (* found files *)
- Clrscr;
- writeln(' Erasing file(s) ',myfiles);
- assign(tempfile,Prefixof(MyFiles)+FileInfo.name) ;
- Erase(tempfile);
- write(FileInfo.name);
- column := 21 ; row := 2;
- FindNext(FileInfo);
- While DosError = 0 do
- begin (* list rest of files *)
- gotoxy(column,row);
- assign(tempfile,Prefixof(MyFiles)+FileInfo.name);
- Erase(tempfile);
- write (FileInfo.name);
- column := column + 20 ;
- if column > 61 then
- begin row := row + 1 ; column := 1 ; end ;
- FindNext(FileInfo) ;
- end ; (* list rest of files *)
- writeln(' ');
- writeln('The above file(s) have been erased. ');
- End (* found files *)
- else
- writeln(' no file found ');
- End; (* EraseFile *)
-
- (* ----------------------------------------------------------------- *)
- (* RenameFile - Remame a file. *)
- (* *)
- (* ----------------------------------------------------------------- *)
- Procedure RenameFile (Var Instring : String) ;
- var
- oldname,newname : String ;
- FileInfo : SearchRec ;
- tempfile : text ;
- label exit ;
- Begin (* RenameFile Procedure *)
- If length(Instring)<1 then
- Begin (* get file name *)
- write(' Enter old file name > ');
- readln(Instring);
- End ; (* get file name *)
- If length(Instring)<1 then goto exit ;
- oldname := uppercase(GetToken(instring));
- newname := uppercase(GetToken(instring));
- If length(newname)<1 then
- Begin (* get new file name *)
- write(' Enter new file name > ');
- readln(Instring);
- newname := uppercase(GetToken(instring));
- End ; (* get new file name *)
- delete(newname,1,length(prefixof(newname)));
- FindFirst(oldname,anyfile,FileInfo);
- If DosError = 0 then
- Begin (* found File *)
- assign(tempfile,prefixof(oldname)+FileInfo.name);
- Rename(tempfile,prefixof(oldname)+newname);
- writeln(' ');
- writeln('File ',oldname, ' renamed to ',newname);
- End (* found File *)
- else
- writeln(' No file - ',oldname);
- exit:
- End; (* RenameFile *)
-
- (* ----------------------------------------------------------------- *)
- (* DisplayFile - display a file. *)
- (* *)
- (* ----------------------------------------------------------------- *)
- Procedure DisplayFile (Myfile : String) ;
- var
- tempfile : text ;
- achar : char ;
- aachar,bbchar : byte ;
- row,column : byte ;
- displaying : boolean ;
-
- label exit ;
- Begin (* DisplayFile Procedure *)
- If length(Myfile)<1 then
- Begin (* get file name *)
- write(' Enter file name > ');
- readln(Myfile);
- End ; (* get file name *)
- If length(Myfile)<1 then goto exit ;
- Assign(tempfile,myfile);
- {$I-} Reset(tempfile); {$I+}
- If IOResult = 0 then
- Begin (* found File *)
- Clrscr ;
- Displaying := not eof(tempfile) ;
- While Displaying do
- begin (* Display file *)
- Read(tempfile,achar);
- Write(achar);
- column := column + 1 ;
- if achar = chr($0D) then column := 1 ;
- if achar = chr($0A) then row := row + 1 ;
- if column > 80 then begin column := 1 ; row := row +1 ; end ;
- If Row >= 24 then (* prompt for more *)
- begin (* page full *)
- row := 1 ;
- While not keychar(aachar,bbchar) Do ;
- if aachar in [$03,$1B] then displaying := false ;
- end ; (* page full *)
- Displaying := displaying and (not Eof(tempfile)) ;
- end; (* Display file *)
- writeln(' ');
- End (* found File *)
- else
- writeln(' No file - ',Myfile);
- exit:
- End; (* DisplayFile *)
-
- End. (* Local Unit *)